import { PrimaryGeneratedColumn, Column, Entity, Index } from 'typeorm'

/**
 * 系统登录信息实体类，记录用户登录行为日志
 */
@Entity('sys_logininfo')
export class LogininfoEntity {
  @PrimaryGeneratedColumn('uuid')
  id: string

  /** 登录账号，非空约束，用于关联用户表 */
  @Index() // 增加索引提升查询性能
  @Column({ comment: '登录账号', nullable: false, default: null })
  username: string

  /** 登录 IP 地址，支持IPv6最长39位 */
  @Column({ comment: '主机地址', default: null, length: 50 })
  ip: string

  @Column({ comment: '登录地点', default: null })
  address: string

  @Column({ comment: '浏览器类型', default: null })
  browser: string

  @Column({ comment: '操作系统', default: null })
  os: string

  /** 登录状态 1:成功 0:失败 */
  @Column({ comment: '登录状态', type: 'tinyint', width: 1, default: 1 })
  status: number

  /** 登录结果消息，记录成功提示或失败原因 */
  @Column({ comment: '提示消息', default: null })
  message: string

  /** 登录时间 自动记录创建时间，无需手动设置 */
  @Column({ name: 'login_time', default: null })
  loginTime: string
}
